package com.glasses.manage.export;

/**
 * 描述: 数据Field
 *
 * @author yy
 */
public class DataField {
    /**
     * 字段名称
     */
    private String name;
    /**
     * 字段名
     */
    private String field;
    /**
     * 日期类型装换(如："yyyy-MM-dd mm:HH:ss")
     */
    private String datePattern;
    /**
     * 是否是数字类型
     */
    private boolean isNumber;
    /**
     * 列宽
     */
    private int columnWidth = 15;
    /**
     * 跨行数:默认1
     */
    private int rowspan = 1;
    /**
     * 跨列数:默认1
     */
    private int colspan = 1;
    /**
     * 所在行数（针对表头）
     */
    private int currentNumber = 0;

    public int currentCol = 0;

    public DataField() {
    }

    /**
     * 数据字段构造方法
     *
     * @param name  显示的名称
     * @param field 字段名
     */
    public DataField(String name, String field) {
        this.name = name;
        this.field = field;
    }

    /**
     * 数据字段构造方法
     *
     * @param name          显示的名称
     * @param field         字段名
     * @param currentNumber 表头所在的行数：默认从0开始
     */
    public DataField(String name, String field, int currentNumber) {
        this(name, field);
        this.currentNumber = currentNumber;
    }

    /**
     * 数据字段构造方法
     *
     * @param name          显示的名称
     * @param field         字段名
     * @param currentNumber 表头所在的行数：默认从0开始
     * @param rowspan       跨行数:默认1
     * @param colspan       跨列数:默认1
     */
    public DataField(String name, String field, int currentNumber, int rowspan, int colspan) {
        this(name, field, currentNumber);
        this.rowspan = rowspan;
        this.colspan = colspan;
    }

    /**
     * 数据字段构造方法
     *
     * @param name        显示的名称
     * @param field       字段名
     * @param datePattern 日期类型格式化字段 (如："yyyy-MM-dd mm:HH:ss")
     */
    public DataField(String name, String field, String datePattern) {
        this(name, field);
        this.datePattern = datePattern;
    }

    /**
     * 数据字段构造方法
     *
     * @param name          显示的名称
     * @param field         字段名
     * @param datePattern   日期类型格式化字段 (如："yyyy-MM-dd mm:HH:ss")
     * @param currentNumber 表头所在的行数：默认从0开始
     */
    public DataField(String name, String field, String datePattern, int currentNumber) {
        this(name, field, datePattern);
        this.currentNumber = currentNumber;
    }

    /**
     * 数据字段构造方法
     *
     * @param name          显示的名称
     * @param field         字段名
     * @param datePattern   日期类型格式化字段 (如："yyyy-MM-dd mm:HH:ss")
     * @param currentNumber 表头所在的行数：默认从0开始
     * @param rowspan       跨行数:默认1
     * @param colspan       跨列数:默认1
     */
    public DataField(String name, String field, String datePattern, int currentNumber, int rowspan, int colspan) {
        this(name, field, datePattern, currentNumber);
        this.rowspan = rowspan;
        this.colspan = colspan;
    }

    /**
     * 数据字段构造方法
     *
     * @param name     显示的名称
     * @param field    字段名
     * @param isNumber 是否是数字类型，true为是,false为不是
     */
    public DataField(String name, String field, boolean isNumber) {
        this(name, field);
        this.isNumber = isNumber;
    }

    /**
     * 数据字段构造方法
     *
     * @param name          显示的名称
     * @param field         字段名
     * @param isNumber      是否是数字类型，true为是,false为不是
     * @param currentNumber 表头所在的行数：默认从0开始
     */
    public DataField(String name, String field, boolean isNumber, int currentNumber) {
        this(name, field, isNumber);
        this.currentNumber = currentNumber;
    }

    /**
     * 数据字段构造方法
     *
     * @param name          显示的名称
     * @param field         字段名
     * @param isNumber      是否是数字类型，true为是,false为不是
     * @param currentNumber 表头所在的行数：默认从0开始
     * @param rowspan       跨行数:默认1
     * @param colspan       跨列数:默认1
     */
    public DataField(String name, String field, boolean isNumber, int currentNumber, int rowspan, int colspan) {
        this(name, field, isNumber, currentNumber);
        this.rowspan = rowspan;
        this.colspan = colspan;
    }


    public boolean isNumber() {
        return isNumber;
    }

    public void setIsNumber(boolean isNumber) {
        this.isNumber = isNumber;
    }

    public String getDatePattern() {
        return datePattern;
    }

    public void setDatePattern(String datePattern) {
        this.datePattern = datePattern;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getField() {
        return field;
    }

    public void setField(String field) {
        this.field = field;
    }

    public int getColumnWidth() {
        return columnWidth;
    }

    public void setColumnWidth(int columnWidth) {
        this.columnWidth = columnWidth;
    }


    public int getRowspan() {
        return rowspan;
    }

    public void setRowspan(int rowspan) {
        this.rowspan = rowspan;
    }

    public int getColspan() {
        return colspan;
    }

    public void setColspan(int colspan) {
        this.colspan = colspan;
    }

    public int getCurrentNumber() {
        return currentNumber;
    }

    public void setCurrentNumber(int currentNumber) {
        this.currentNumber = currentNumber;
    }
}
